import { createOrder } from './api'

/**
 * 微信小程序唤起微信支付
 * @param itemId 商品ID
 * @returns 订单ID
 */
const pay_mp_weixin = async (options: {
  /** 商品ID */
  itemId: number
  /** 需要解锁的测试分类 */
  testType?: string
  /** 需要解锁的测试结果ID */
  testResultId?: number
}): Promise<string> => {
  // 获取支付配置
  const { data } = await createOrder({ ...options, payChanel: 2 })

  // 微信支付请求（非IOS环境）
  await new Promise<boolean>((resolve, reject) => {
    uni.requestPayment({
      provider: 'wxpay',
      orderInfo: '',
      ...data.paymentParam,
      success: resolve,
      fail(err) {
        reject(err.errMsg?.includes('cancel') ? '支付取消' : err)
      },
    })
  })

  return data.orderNo
}

export { pay_mp_weixin }
